1. Field of the Invention
The present invention relates to a digital ink generating apparatus, a digital ink generating method, and a digital ink reproducing apparatus and, more particularly, to a digital ink generating apparatus and a digital ink generating method configured to generate a digital ink on the basis of event data that is generated when a pen is operated and a digital ink reproducing apparatus configured to reproduce the digital ink thus generated.
2. Description of the Related Art
Moving a pen filled with ink or a brush applied with paint on a piece of paper has ink or paint absorbed in the paper or deposited thereon, thereby drawing a trace.
Digital ink is data obtained by putting a trace (or a stroke) into electronic data, the trace being left by moving an indicator such as an electronic pen or a stylus on a position detection device such as a tablet as if simulating a handwritten trace drawn on a piece of paper. Digital ink is configured by normally including (1) data for reproducing a handwritten trace, (2) data for describing a drawing style of a trace, and (3) data for describing transform rules for transforming data related with a trace. Digital ink has data formats standardized for use in different environments, such as drawing applications and documentation applications that operate under the control of various OS's, which is disclosed in Yi-Min Chee and 11 others, “Ink Markup Language (InkML) W3C Recommendation 20 Sep. 2011,” [online], Sep. 20, 2011, W3C [Searched on Nov. 19, 2014], Internet <URL: http://www.w3.org/TR/InkML/>; “Ink Serialized Format Specification,” [online], Microsoft Corporation, [Searched on Dec. 11, 2014], Internet <URL: http://download.microsoft.com/download/0/B/E/0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/InkSerializedFormat(ISF)Specification.pdf>; Erik Dahlstrom, and 9 others, “Scalable Vector Graphics (SVG) 1.1 (Second Edition) W3C Recommendation 16 Aug. 2011,” [online], Aug. 16, 2011, W3C, [Searched on Dec. 11, 2014], Internet <URL: http://www.w3.org/TR/SVG/>; and Ian Hickson, and 6 others, “A vocabulary and associated APIs for HTML and XHTML W3C Recommendation 28 Oct. 2014,” [online], Oct. 28, 2014, W3C, [Searched on Dec. 11, 2014], Internet <URL: http://www.w3.org/TR/html5/> (Non-Patent Documents 1, 2, 3 and 4, respectively).
InkML described in Non-Patent Document 1 is one of the most popular data formats of digital ink. (1) Data for reproducing a handwritten trace is called a <trace> element. The <trace> element describes a set of two or more pieces of point data (data detected by an input sensor at a predetermined time interval and including data indicative of input-sensor-dependent attributes (input sensor attributes), such as coordinate data (X, Y), writing pressure data P, and time data T) making up a trace of one stroke (an operation done from touching of an indicator onto the sensor surface of a position detection apparatus to removing this indicator from the sensor surface). In addition, InkML specifies (2) data such as a <brush> element, for example, as data for specifying a trace drawing style and (3) data such as a <mapping> element to be described later, as data for describing transform rules for data related with traces.
ISF (Ink Serialized Format) described in Non-Patent Document 2 is a data format of digital ink for use in applications of Microsoft Corporation. (1) A data block for reproducing a handwritten trace is referred to as StrokeDescriptorBlock. The StrokeDescriptorBlock describes points (X, Y coordinate values) for reproducing a stroke trace and a writing pressure value, for example. In addition, (2) DrawingAttributeBlock that is a block for describing a drawing style and (3) TransformBlock that is a block for describing transform rules of data related with traces are specified.
SVG described in Non-Patent Document 3 is a markup language for describing a two-dimensional graphics application and a set of image and graphics script. (1) There is a <path> element as data for reproducing a handwritten trace. The <path> element includes two or more control points (point data) and a trace is reproduced by a Bezier curve based on these control points.
In addition, HTML5 described in Non-Patent Document 4 specifies (1) a data type called CanvasPath class as data for reproducing a handwritten trace.
In the following, the <trace> of Non-Patent Document 1, the StrokeDescriptorBlock of Non-Patent Document 2, the <path> element of Non-Patent Document 3, and the CanvasPath in HTML5 of Non-Patent Document 4 are generically referred to as stroke data that is vector data for reproducing shapes including traces and line widths handwritten by use of an input apparatus.
Further, in what follows, the data for describing transform rules of the data (stroke data) related with traces, such as the <mapping> of Non-Patent Document 1 and the <TransformBlock> of Non-Patent Document 2 are generically referred to as mapping data.
Now, referring to FIG. 19A, there is shown a diagram illustrating a <mapping> element that is mapping data described in Non-Patent Document 1. This example shows a transform rule that uses “affine” as the type of <mapping> element. This transform rule shows a transform that executes, on a graphic specified by X coordinate and Y coordinate, affine transform (the graphic is executed with transform of 90-degree rotation and then translated by 200 in Y direction) shown in row 4 to row 7.
Referring to FIG. 19B, there is shown a diagram illustrating a transform rule with “mathml” used as the type of <mapping> element. The transform rule using “mathml” allows the use of mathematic operations corresponding to “root,” “cos,” “minus,” and other expressions reserved in a name space specified by MathML2 disclosed in Ron Ausbrooks, and 15 others, “Mathematical Markup Language (MathML) Version 2.0 (Second Edition) W3C Recommendation 21 Oct. 2003,” [online], Oct. 21, 2003, W3C, [Searched on Dec. 11, 2014], Internet <URL: http://www.w3.org/TR/MathML2/> (Non-Patent Document 5). The transform rule shown in the example of FIG. 19B is one by which coordinate data (VR, VTh) of an input sensor attribute indicated by a polar coordinate format is transformed to coordinate data (X, Y) indicated by an orthogonal coordinate format. In the figure, a transform rule indicated by a dashed line frame MD_X in the line 2 through the line 13 describes a transform rule for deriving new X coordinate data by use of a cosine and so on specified by “cos” by a value of diameter VR (variable r), a value of angle VTh (variable theta), and MathML indicated by input sensor attributes. A transform rule indicated by MD_Y in the line 14 through the line 25 is indicative of a transform rule for obtaining new Y coordinate data.
ISF of Non-Patent Document 2 lists variations available as transform rules as a type of <TRANSFORM BLOCK> (page 10). A transform matrix that can be expressed by two rows and three columns made up of elements M11, M12, M21, M22, and DX and DY is supposed as an affine transform matrix indicated in FIG. 19A and various transforms by use of this transform matrix are specified. For example, <TAG_TRANSFORM_ISOTROPIC_SCALE> and <TAG_TRANSFORM_ANISOTROPIC_SCALE> for zooming in/out stroke data, <TAG_TRANSFORM_ROTATE> for rotating stroke data, <TAG_TRANSFORM_TRANSLATE> for translating stroke data, and <TAG_TRANSFORM_ROTATE_AND_TRANSLATE> for rotating and then translating stroke data are available.
L. M. Mestetskii, “Fat Curves and Representation of Planar Figures,” [online], 2000, Department of Information Technologies, Tver′ State University, Tver, Russia, [Searched on Nov. 19, 2014], Internet <URL: http://cgm.cs.ntust.edu.tw/hlyang/www/Fat %20Curves.ppt> (Non-patent document 6) discloses an example of a drawing method for drawing natural lines on the basis of digital ink.